package juego.tipos;
import juego.tipos.Vector;
	
public class Velocidad extends Vector{
	double angular;
	
	/*Constructores*/
	
	public Velocidad(double velocidadX,double velocidadY){
		this.x= velocidadX;
		this.y= velocidadY;
		this.angular = 0;		
	}
	
	//Crea una velocidad siguiendo la direccion indicada y con modulo=modulo
	public Velocidad(Vector direccion, double modulo){
		this.set(direccion, modulo);
	}

	//public Velocidad(double sentidoX, double sentidoY, double modulo){
	//	this.set(new Vector(sentidoX,sentidoY), modulo);
	//	this.angular=0;
	//}
	
	public Velocidad(double velocidadAngular){
		this.x=0;
		this.y=0;
		this.angular = velocidadAngular;
	}
	
	/***********************************************************************/
	public void set(Velocidad velocidadNueva){
		this.set(velocidadNueva.x, velocidadNueva.y);
		this.setAngular(velocidadNueva.angular);
	}

	public void set(Vector direccion, double modulo){
		Double tmp= new Double(direccion.longitud());
		if(tmp.compareTo(0.0)==0){
			this.set(modulo, 0);
		}else{
			this.set((direccion.x / tmp)*modulo , (direccion.y/tmp)*modulo);
		}
	}
	
	public void setDireccion(Vector direccion){
		this.set(direccion, this.getModulo());
	}

	public void setAngular(double velAngularEnRadianes){
		angular = velAngularEnRadianes;
	}

	public double getAngular(){
		return angular;
	}
	
	public Vector getVectorVelocidad(){
		return new Vector(x,y);
	}

	public Velocidad copiar(){
		Velocidad tmp = new Velocidad(this,this.longitud());
		tmp.setAngular(this.angular);
		return tmp;
	}
	
	public double getModulo(){
		return this.longitud();
	}
	
	//Invierte el signo de la velocidad en X
	public void invertirX(){
		x = -1*x;
	}
}

